package com.mm.service;

import com.mm.bo.*;
import com.mm.pojo.DepartmentInfo;
import com.mm.util.PageUtil;
import com.mm.vo.DepastaffVo;
import com.mm.vo.EmpPunishListVo;

import java.util.List;

/**
 * @author 林友航
 * @version 1.0
 * @date 2020/12/4 10:58
 */
public interface DepartmentInfoService {

    /**
     * 查询
     *
     * @param departmentSearchBo
     * @return
     */
    PageUtil<DepastaffVo> selectDepartmentInfo(DepartmentSearchBo departmentSearchBo);

    /**
     * 修改员工信息
     *
     * @param departmentSearchBo
     * @return
     */
    Integer updateDepartmentInfo(DepartmentSearchBo departmentSearchBo);


    /**
     * 添加部门信息
     *
     * @param inserDepaInfoBo
     * @return
     */
    Integer insertDepaInfo(InserDepaInfoBo inserDepaInfoBo) throws Exception;

    /**
     * 查询部门列表信息
     *
     * @return
     */
    List<DepartmentInfo> queryDepaList();

    /**
     * 修改管理员信息
     *
     * @param depaUpdateBo
     * @return
     */
    Integer updateDepaInfo(DepaUpdateBo depaUpdateBo) throws Exception;

    /**
     * 删除部门信息
     *
     * @param depaId
     * @param token
     * @return
     */
    Integer deleteDepaInfo(String depaId, String token);

    /**
     * 考核评价
     *
     * @param evaluationEmpInfoBo
     * @return
     */
    Integer evaluationEmpInfo(EvaluationEmpInfoBo evaluationEmpInfoBo) throws Exception;

    /**
     * 添加员工处罚
     *
     * @param punishEmpInfoBo
     * @return
     * @throws Exception
     */
    Integer punishEmpInfo(PunishEmpInfoBo punishEmpInfoBo) throws Exception;

    /**
     * 查询员工处罚列表
     *
     * @param empPunishListBo
     * @return
     */
    PageUtil<EmpPunishListVo> queryEmpPunishList(EmpPunishListBo empPunishListBo);
}
